/**
 * 
 */
package com.mpo.ejb.persistence.dao;

import java.util.List;

import javax.ejb.Local;

import com.mpo.common.util.SeguridadesException;
import com.mpo.ejb.persistence.entities.Perfil;
import com.mpo.ejb.persistence.entities.Usuario;

/**
 * @author 
 *
 */
@Local
public interface PerfilDAO extends AbstractFacade<Perfil>{
	
	/**
	 * Obtener modulos de los usuarios
	 * @param usuario
	 * @return
	 * @throws SeguridadesException
	 */
	List<Perfil> obtenerModuloUsuario(Usuario usuario) throws SeguridadesException;
	
	/**
	 * Consultar <code>Perfil</code> en la BD usando diferentes criterios
	 * @param perfil
	 * @return
	 * @throws SecurityException
	 */
	List<Perfil> obtenerPerfilCriterios (Perfil perfil) throws SeguridadesException;
	
	
	/**
	 * Consultar <code>Perfil</code> por el id de una empresa
	 * @param perfil
	 * @return
	 * @throws SeguridadesException
	 */
	List<Perfil> obtenerPerfilEmpresa (Perfil perfil) throws SeguridadesException;
	
	/**
	 * Asignar un modulo a un perfil
	 * @param idModulo
	 * @param idPerfil
	 * @throws SeguridadesException
	 */
	void moduloPerfil(Integer idModulo, Integer idPerfil) throws SeguridadesException;
	
	/**
	 * Elimina modulos de un perfil
	 * @param idPerfil
	 * @throws SeguridadesException
	 */
	void deleteModulosPerfil(Integer idPerfil) throws SeguridadesException;
}
